#include "mainwindowhomepage.h"
#include "ui_mainwindowhomepage.h"

MainWindowHomePage::MainWindowHomePage(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::MainWindowHomePage)
{
    ui->setupUi(this);

    //设置窗口名和窗口大小
    setWindowTitle("海底捞点单系统 V1.7.9");
    setFixedSize(800, 480);
}

MainWindowHomePage::~MainWindowHomePage()
{
    delete ui;
}

//返回按键
void MainWindowHomePage::on_btn_back_clicked()
{
    //因为在跳转时，记录了上一个界面
    //所以可以利用此函数获取当前窗口的父窗口对象指针
    QWidget *parent = this->parentWidget();
    parent->show();//把之前父界面的隐藏状态改为显示状态，显示父界面
    this->close();//关闭当前界面
    //销毁子界面
    delete this;
}

void MainWindowHomePage::on_btn_ok_clicked()
{
    //判断桌号和人数输入框是否为空
    if(ui->lineEdit_desk_num->text().isEmpty() && !ui->lineEdit_people_num->text().isEmpty())
    {
       QMessageBox::warning(this, "提示", "请输入所在桌号！");
       return;
    }
    else if(!ui->lineEdit_desk_num->text().isEmpty() && ui->lineEdit_people_num->text().isEmpty())
    {
        QMessageBox::warning(this, "提示", "请输入用餐人数！");
        return;
    }
    else if(ui->lineEdit_desk_num->text().isEmpty() && ui->lineEdit_people_num->text().isEmpty())
    {
        QMessageBox::warning(this, "提示", "请输入所在桌号和用餐人数！");
        return;
    }

    //获取输入框中的桌号和人数信息
    QString deskNum = ui->lineEdit_desk_num->text();
    QString peopleNum = ui->lineEdit_people_num->text();

    //不为空则将桌号和人数拼接在一起，并在末尾加一个"homepage_ok"的标识符，表示这是进入菜单，冒号区分不同类型的信息
    QString flag = "homepage_ok";
    QString info = QString("%1:%2:%3").arg(deskNum).arg(peopleNum).arg(flag);

    //将打包好的信息发给服务器
    tcpSocket->write(info.toUtf8().data());

    //创建新界面对象
    //第一步：创建另一个界面的对象  new MainWindow(this) 把父窗口传递过去，记录从哪一个界面跳转
    MainWindowMenu *mainWidget = new MainWindowMenu(this);

    //第二步：设置对象属性 关闭之后自动销毁对象
    mainWidget->setAttribute(Qt::WA_DeleteOnClose);

    //第三步：将桌号和人数传递给新窗口
    mainWidget->recvInfo(deskNum, peopleNum);

    //第四步：显示要跳转的界面
    mainWidget->show();

    //第五步：隐藏当前的界面,跳转到另一个界面之后，点击返回按钮还可以返回当前界面
    this->hide();
}
